Objs:= main.o consumer.o producer.o Task_queue.o
Out := main
CXX := g++
Src := consumer.hh producer.hh Task_queue.hh
$(Out): $(Objs)
	$(CXX) $^ -o $@

main.o: main.cc $(Src)
	$(CXX) -c $^ 

consumer.o: consumer.cc consumer.hh  Task_queue.hh
	$(CXX) -c $^

producer.o: producer.cc producer.hh Task_queue.hh
	$(CXX) -c $^

Task_queue.o:Task_queue.cc Task_queue.hh
	$(CXX) -c $^

.PHONY: clean rebulid

clean:
	$(RM) $(Out) $(Objs) *.gch

rebuild:clean $(Out)


